<?php

namespace business\elasticsearch\models;

use business\elasticsearch\types\NewsConfigType;
use yii\elasticsearch\ActiveRecord;

class NewsModel extends ActiveRecord
{
    /**
     * 资讯文章
     * @return array|string[]
     */
    public function attributes()
    {
        return [
            'uid',  // 资讯id
            'title',  // 资讯标题
            'categoryId', // 分类ID
            'categoryName', // 分类名称
            'author', // 作者
            'source', // 来源
            'tag', // 标签
            'digest', // 摘要
            'imgSrc', // 图片地址
            'content',    // 内容
            'createdTime',    // 创建时间
        ];
    }

    /**
     * 创建索引
     * @return mixed
     */
    public function createIndex()
    {
        return static::getDb()->createCommand()
            ->createIndex(
                static::index(),
                [
                    'settings' => NewsConfigType::settingsConfig()
                    ,
                    'mappings' => [
                        '_doc' => NewsConfigType::mapConfig()
                    ]
                ]
            );
    }

    /**
     * 索引是否存在
     * @return mixed
     */
    public function existsIndex()
    {
        return static::getDb()
            ->createCommand()
            ->indexExists(static::index());
    }

    public static function getDb()
    {
        return \Yii::$app->get('elasticsearch');
    }

    public static function index()
    {
        return 'platform.news';
    }

}